home *** CD-ROM | disk | FTP | other *** search
- {Compile for TOS!}
- {$S10}
- program scrtest;
-
- var
- old,
- screen,
- screensize,
- zero : Long_integer;
- i : integer;
- gorp:char;
-
- Function Malloc( size : Long_Integer ): Long_Integer;
- Gemdos($48);
-
- Procedure Setscreen( log, phys : Long_Integer; rez:integer );
- Xbios(5);
-
- Function Physbase:Long_integer;
- Xbios(2);
-
- procedure nothing;
- var a,b:integer;
- begin
- a := 1;
- end;
-
- procedure delay;
- var i : integer;
- begin
- for i:= 1 to 100 do nothing;
- end;
-
- procedure fill_scrn( addr:long_integer; s : string );
- var i:integer;
- begin
- Setscreen( addr, addr, -1 );
- delay; { wait for vertical retrace ... }
- for i := 1 to 25 do
- writeln( s );
- writeln;
- end;
-
- begin
- zero := 0;
- screensize := 32000; { make a long containing 32000 }
-
- screensize := screensize + 255;
-
- screen := Malloc( screensize );
-
- screen := (screen+255) & $ffffff00; { chop off lower 8 bits }
-
- old := Physbase;
- if (screen = zero ) then
- writeln( ' not enough mem ' )
- else begin
- fill_scrn( screen, 'If you can read this then' );
- fill_scrn( old,
- ' we were successful! Press return' );
- while not keypress do begin
- Setscreen( screen, screen, -1 );
- delay;
- setscreen( old, old, -1 );
- delay
- end;
- read(gorp);
- end;
- end.
-